package de.dhbw.karlsruhe.picsim.model.actions;

import org.jetbrains.annotations.NotNull;

/**
 * Created by IntelliJ IDEA.
 * User: goesen
 * Date: Apr 12, 2010
 * Time: 3:52:20 PM
 */
public interface PicAction {
    void acceptVisitor(@NotNull Visitor visitor);

    interface Visitor {
        void visit(@NotNull WriteInFileAction action);

        void visit(@NotNull WriteInWAction action);

        void visit(@NotNull StatusAction action);

        @SuppressWarnings({"UnusedParameters"})
        void visit(@NotNull PushToStackAction action);

        @SuppressWarnings({"UnusedParameters"})
        void visit(@NotNull PopFromStackAction action);

        void visit(@NotNull ModifyProgramCounterAction action);

        @SuppressWarnings({"UnusedParameters"})
        void visit(@NotNull ClearWatchDogAction clearWatchDogAction);
    }
}
